<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Language" content="zh-CN"><link href="stylesheet.css" media="all" rel="stylesheet" type="text/css">
<title>pg_autovacuum</title>
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</head><body class="SECT1">
<div>
<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><th colspan="5" align="center" valign="bottom">PostgreSQL 8.2.3 中文文档</th></tr>
<tr><td width="10%" align="left" valign="top"><a href="catalog-pg-auth-members.html" accesskey="P">后退</a></td><td width="10%" align="left" valign="top"><a href="catalogs.html">快退</a></td><td width="60%" align="center" valign="bottom">章43. 系统表</td><td width="10%" align="right" valign="top"><a href="catalogs.html">快进</a></td><td width="10%" align="right" valign="top"><a href="catalog-pg-cast.html" accesskey="N">前进</a></td></tr>
</table>
<hr align="LEFT" width="100%"></div>
<div class="SECT1"><h1 class="SECT1"><a name="CATALOG-PG-AUTOVACUUM">43.10. <tt class="STRUCTNAME">pg_autovacuum</tt></a></h1><a name="AEN62591"></a><a name="AEN62593"></a>
<p><tt class="STRUCTNAME">pg_autovacuum</tt> 为 autovacuum 守护进程存储针对每个关系的配置参数，给出的参数将用于自动清理该表。如果没有提供条目，那么使用系统范围的缺省。关于 autovacuum 的更多信息，参见<a href="routine-vacuuming.html#AUTOVACUUM">节22.1.4</a>。</p>
<div class="TABLE"><a name="AEN62599"></a>
<p><b>表43-10. <tt class="STRUCTNAME">pg_autovacuum</tt> 字段</b></p>
<table border="1" class="CALSTABLE"><col><col><col><col>
<thead>
<tr><th>名字</th><th>类型</th><th>引用</th><th>描述</th></tr>
</thead>
<tbody>
<tr><td><tt class="STRUCTFIELD">vacrelid</tt></td><td><tt class="TYPE">oid</tt></td><td><tt class="LITERAL"><a href="catalog-pg-class.html"><tt class="STRUCTNAME">pg_class</tt></a>.oid</tt></td><td>此条记录用于的表</td></tr>
<tr><td><tt class="STRUCTFIELD">enabled</tt></td><td><tt class="TYPE">bool</tt></td><td>&nbsp;</td><td>如果为假，该表从不会被自动清理</td></tr>
<tr><td><tt class="STRUCTFIELD">vac_base_thresh</tt></td><td><tt class="TYPE">integer</tt></td><td>&nbsp;</td><td>清理前修改的最少的行数目</td></tr>
<tr><td><tt class="STRUCTFIELD">vac_scale_factor</tt></td><td><tt class="TYPE">float4</tt></td><td>&nbsp;</td><td>追加到 <tt class="STRUCTFIELD">vac_base_thresh</tt> 上的行的倍数</td></tr>
<tr><td><tt class="STRUCTFIELD">anl_base_thresh</tt></td><td><tt class="TYPE">integer</tt></td><td>&nbsp;</td><td>分析之前修改的最少的行数目</td></tr>
<tr><td><tt class="STRUCTFIELD">anl_scale_factor</tt></td><td><tt class="TYPE">float4</tt></td><td>&nbsp;</td><td>追加到 <tt class="STRUCTFIELD">anl_base_thresh</tt> 上的行的倍数</td></tr>
<tr><td><tt class="STRUCTFIELD">vac_cost_delay</tt></td><td><tt class="TYPE">integer</tt></td><td>&nbsp;</td><td>自定义的 <tt class="VARNAME">vacuum_cost_delay</tt> 参数</td></tr>
<tr><td><tt class="STRUCTFIELD">vac_cost_limit</tt></td><td><tt class="TYPE">integer</tt></td><td>&nbsp;</td><td>自定义的 <tt class="VARNAME">vacuum_cost_limit</tt> 参数</td></tr>
<tr><td><tt class="STRUCTFIELD">freeze_min_age</tt></td><td><tt class="TYPE">integer</tt></td><td>&nbsp;</td><td>自定义的 <tt class="VARNAME">vacuum_freeze_min_age</tt> 参数</td></tr>
<tr><td><tt class="STRUCTFIELD">freeze_max_age</tt></td><td><tt class="TYPE">integer</tt></td><td>&nbsp;</td><td>自定义的 <tt class="VARNAME">autovacuum_freeze_max_age</tt> 参数</td></tr>
</tbody>
</table>
</div>
<p>autovacuum 守护进程在某个表上行的更新或者删除数目超过 <tt class="STRUCTFIELD">vac_base_thresh</tt> 加上 <tt class="STRUCTFIELD">vac_scale_factor</tt> 乘以关系(表)中当前的有效行的估计数之后，将对该表发起一次 <tt class="COMMAND">VACUUM</tt> 操作。类似，如果某表上插入，更新或者删除的行数目超过了 <tt class="STRUCTFIELD">anl_base_thresh</tt> 加上 <tt class="STRUCTFIELD">anl_scale_factor</tt> 乘以关系(表)中当前有效行的估计数之后，将对该表发起一次 <tt class="COMMAND">ANALYZE</tt> 操作。</p>
<p>同样，如果表的 <tt class="STRUCTNAME">pg_class</tt>.<tt class="STRUCTFIELD">relfrozenxid</tt> 字段超过 <tt class="STRUCTFIELD">freeze_max_age</tt> 次事务，那么无论该表是否被修改，autovacuum 都会执行 <tt class="COMMAND">VACUUM</tt> 操作以避免事务 ID 重叠。即使在 autovacuum 被禁用的情况下，系统也会调用 autovacuum 来执行 <tt class="COMMAND">VACUUM</tt> 。参见<a href="routine-vacuuming.html#VACUUM-FOR-WRAPAROUND">节22.1.3</a>获取更多信息。</p>
<p>上述所有数字字段都可以包含 <tt class="LITERAL">-1</tt> 或者是任何负数，表示在这个数值上使用系统范围的缺省值。注意，<tt class="STRUCTFIELD">vac_cost_delay</tt> 变量从配置参数 <a href="runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-DELAY">autovacuum_vacuum_cost_delay</a> 继承缺省数值，如果前面这个参数设置为负值，则从 <tt class="VARNAME">vacuum_cost_delay</tt> 继承缺省值。<tt class="STRUCTFIELD">vac_cost_limit</tt> 也一样。同样，autovacuum 将忽略企图针对单个表设置大于系统全局值的 <tt class="STRUCTFIELD">freeze_max_age</tt> 值(该值仅允许比全局值更小)，同时，<tt class="STRUCTFIELD">freeze_min_age value</tt> 将被限制为系统全局 <a href="runtime-config-autovacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE">autovacuum_freeze_max_age</a> 值的一半之内。</p>
</div>
<div>
<hr align="LEFT" width="100%">
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="33%" align="left" valign="top"><a href="catalog-pg-auth-members.html" accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">首页</a></td><td width="33%" align="right" valign="top"><a href="catalog-pg-cast.html" accesskey="N">前进</a></td></tr>
<tr><td width="33%" align="left" valign="top"><tt class="STRUCTNAME">pg_auth_members</tt></td><td width="34%" align="center" valign="top"><a href="catalogs.html" accesskey="U">上一级</a></td><td width="33%" align="right" valign="top"><tt class="STRUCTNAME">pg_cast</tt></td></tr>
</table>
</div>
</body></html>